#include <unistd.h>
#include <sys/time.h>

int analogRead( int pin)
{
    //printf( "analogRead: enter\n");
	if( pin == PIN_ANALOG_BUTTONS) {
		if( !kbhit()) {
			return 0;
		}
	    //printf( "analogRead: reading char\n");
		int ch = getch();
	    //printf( "analogRead: char='%c' (%x)\n", ch, ch);

		switch( ch) {
 		  case 'q': return analogButtonsLevel[0].min;
		  case 'a': return analogButtonsLevel[1].min;
		  case 'p': return analogButtonsLevel[3].min;
		  case 'o': return analogButtonsLevel[4].min;
		  case ' ': return analogButtonsLevel[2].min;
		}
		return 1023;
	}
    return -1; // Para saber si ha salido por aqu� al hacer pruebas
}
void analogWrite( int pin, int value)
{
//	if( pin == Vbuttons) {
//	}
    printf( "analogWrite(%d) <- %d\n", pin, value);
}

int digitalRead( int pin)
{
	if( pin == PIN_PRUEBA) {
		return HIGH;
	}
    return LOW;
}
void digitalWrite( int pin, int value)
{
//	if( pin == Vbuttons) {
//	}
    printf( "digitalWrite(%d) <- %d\n", pin, value);
}

void pinMode( int pin, int mode)
{
//	if( pin == Vbuttons) {
//	}
    printf( "pinMode(%d) - %d\n", pin, mode);
}

void delay( long milliseconds)
{
//    printf( "delay.init\n");
	usleep( static_cast<useconds_t>(milliseconds)*1000);
//    printf( "delay.end\n");
}

long millis()
{
	struct timeval tv;
    gettimeofday(&tv,NULL);
    return tv.tv_sec*1000L+tv.tv_usec/1000;
}

Serial_Dummy Serial, Serial2, Serial3;

